const pageConfig = {
    page: 1,
    pagesize: 20
};

const pageSizeOpts = [20, 50, 100];

const formatNumber = function (number, digits = 0) {
    if (number === 0) {
        let result = '0';
        for (let i = 0; i < digits; i++) {
            result += (i === 0 ? '.0' : '0');
        }
        return result;
    }

    if (!number || isNaN(number)) {
        return null;
    }

    if (number < 0) {
        return '-' + this.formatNumber(-number, digits);
    }
    return number.toFixed(digits).toString().replace(/(^|\s)\d+/g, (m) => m.replace(/(?=(?!\b)(\d{3})+$)/g, ','));
};

const formatTime  = function (time, formatRule) {
    let date = new Date(time);
    if (!formatRule) {
        return date;
    }
    let o = {
        'M+': date.getMonth() + 1, // 月份
        'D+': date.getDate(), // 日
        'H+': date.getHours(), // 小时
        'h+': date.getHours() % 12 === 0 ? 12 : date.getHours() % 12, // 小时
        'm+': date.getMinutes(), // 分
        's+': date.getSeconds(), // 秒
        'q+': Math.floor((date.getMonth() + 3) / 3), // 季度
        S: date.getMilliseconds() // 毫秒
    };
    let week = {
        '0': '\u65e5',
        '1': '\u4e00',
        '2': '\u4e8c',
        '3': '\u4e09',
        '4': '\u56db',
        '5': '\u4e94',
        '6': '\u516d'
    };
    if (/(Y+)/.test(formatRule)) {
        formatRule = formatRule.replace(
            RegExp.$1,
            (date.getFullYear() + '').substr(4 - RegExp.$1.length)
        );
    }
    if (/(E+)/.test(formatRule)) {
        formatRule = formatRule.replace(
            RegExp.$1,
            (RegExp.$1.length > 1
                ? RegExp.$1.length > 2 ? '\u661f\u671f' : '\u5468'
                : '') + week[date.getDay() + '']
        );
    }
    for (let k in o) {
        if (new RegExp('(' + k + ')').test(formatRule)) {
            formatRule = formatRule.replace(
                RegExp.$1,
                RegExp.$1.length === 1 ? o[k] : ('00' + o[k]).substr(('' + o[k]).length)
            );
        }
    }
    return formatRule;
};

const getNodeId = function (list, newNodeId = []) {
    for (let i in list) {
        newNodeId.push(list[i]);
        if (list[i].child) {
            getNodeId(list[i].child, newNodeId);
        }
    }
    return newNodeId;
};


export default {
    formatTime,
    formatNumber,
    getNodeId
};
